سرويس های وب XML

سرويس های وب XML ، بعنوان بلاک های اوليه برای ايجاد برنامه های توزيع شده در اينترنت مورد توجه جدی قرار گرفته اند. وجود استانداردهای مطلوب برای ارتباط برنامه ها با يکديگر باعث شده است که سرويس های وب XML بعنوان يک پلات فورم قابل قبول برای ارتباط بين برنامه ای مطرح گردند. هر برنامه با استفاده از چندين سرويس وب XML ، ايجاد خواهد شد. منابع ارائه دهنده سرويس های وب می توانند متفاوت بوده و در عين حال امکان ارتباط آنها با يکديگر صرفنظر از محل استقرار و نحوه پياده سازی ، وجود خواهد داشت . تاکنون تعاريف متفاوتی از سرويس های وب ارائه شده است ، برآيند تمامی تعاريف فوق را می توان بصورت زير خلاصه نمود .
• سرويس های وب XML ، باعث ارائه قابليت ها و توانائی های مطلوب برای کاربران وب از طريق بکارگيری يک پروتکل استاندارد وب می گردد. پروتکل فوق SOAP ناميده می شود.
• سرويس های وب XML ، سرويس های وب قادر به تشريح اينترفيس مربوط به خود بهمراه جزئيات مناسب بوده تا از اين طريق کاربران بتوانند برنامه های سرويس گيرنده ای را ايجاد نمايند که قادر به گفتگو با برنامه مورد نظر باشند. برای تشريح عملکرد هر يک سرويس های وب از سندهای با نوع XML استفاده شده که WSDL)Web services Description Language) ناميده می شوند.
• سرويس های وب می بايست ريجستر شده تا از اين طريق کاربران قادر به يافتن آنها در زمان مناسب باشند. عمليات فوق توسط UDDI)Universal Discovery Description and Integration) انجام خواهد گرفت .
در اين مقاله به هر يک از تکنولوژيهای فوق اشاره خواهد شد . قبل از پرداختن به موارد فوق ، لازم است با سرويس های وب بيشتر آشنا شده و به ضرورت های استفاده از آنان واقف گرديم .
يکی از اولين مزايای سرويس های وب XML ،امکان نوشتن برنامه ها با زبانهای برنامه نويسی متفاوت و بر روی پلات فورم های گوناگون، بگونه ای است که هر يک از آنان بر اساس يک روش استاندارد قادر به برقراری ارتباط با يکديگر باشند . از ديگر مزايای سرويس های وب XML ، استفاده اين سرويس ها از پروتکل های استاندارد وب نظير : ,XML و HTTP,TCP/IP است .
سرويس های وب XML ، سرويس های نرم افزاری بوده که با استفاده از SOAP بر روی وب بکارگرفته شده و توسط يک فايل WSDL تشريح و بکمک UDDI ريجستر خواهند شد.

قابليت های سرويس های وب XML

هدف اوليه سرويس های وب ، ارائه اطلاعات لازم برای استفاده در ساير برنامه ها بود.اطلاعات وضعيت آب و هوا ، نتايج مسابقات ورزشی و ... نمونه هائی از اولين کاربردهای سرويس های وب می باشند . بهرحال می توان مجموعه وسيعی از برنامه ها را تصور نمود که می توان آنها را ايجاد تا پس از پردازش های مناسب بر روی اطلاعات ، نتايج با استفاده از روش های متفاوتی ارائه گردند . مثلا" می توان يک صفحه Excel را که شامل خلاصه اطلاعاتی در رابطه با وضعيت سهام ،موجودی بانک است ، ارائه کرد. در صورتيکه اطلاعات فوق توسط سرويس های وب XML ، ارائه گردند ، برنامه Excel قادر به بهنگام سازی پيوسته آنان خواهد بود. دستيابی به برخی از اين اطلاعات بصورت رايگان بوده و برا ی استفاده از برخی ديگر، می بايست به عضويت سرويس در آمد. اطلاعاتی از اين نوع در حال حاضر نيز بر روی وب وجود دارد ، ولی با استفاده از سرويس های وب، می توان با اتکاء بر روش های مدرن برنامه نويسی به آنها دستيابی و قطعا" در اين راستا نتايج در مدت زمان کوتاهتر و با اعتبار بيشتر ايجاد خواهند شد .
طراحان و پياده کنندگان نرم افزار اين امکان را خواهند داشت که با بکارگيری نرم افزارهای فعلی بهمراه سرويس های وب ، به آفرينش نرم افزارهای جديدی همت گمارند که خشت خشت آنها از سرويس های وب ايجاد شده باشد. مثلا" يک شرکت می تواند نرم افزاری برای خريد و فروش را طراحی نمايد که بصورت اتوماتيک بهای کالاها را از فروشندگان متفاوت اخذ نمايد.در اين حالت کاربران می تواتند يک کالا را از يک توليد کننده خاص انتخاب و سفارش خود را ثبت نمايند.برنامه فوق از زاويه فروشندگان ، می تواند دارای يک سرويس وب مجزاء برای بررسی کارت اعتباری خريدار نيز باشد. در آينده با سرويس های وب XML ، متعددی مواجه خواهيم بود که مسئوليت لجستيک اطلاعاتی و عملياتی برنامه های وب را برعهده خواهند گرفت . رويکرد فوق دستاوردهای بسيار بزرگی را برای جامعه بزرگ بشريت خصوصا" شهروندان اينترنت بدنبال خواهد شد .

SOAP

SOAP ، پروتکل ارتباطی برای سرويس های وب XML است . با اينکه SOAP يک پروتکل ارتباطی است ،اما اغلب آن را با DCOM و يا CORBBA مشابه دانسته و سوالاتی نظير : " چگونه SOAP باعث فعال شدن يک شی می گردد؟" و يا " از چه سرويس نامگذاری SOAP استفاده می کند ؟" مطرح می نمايند . با اينکه يک نمونه از نسخه های پياده سازی شده توسط SOAP ، شايد دلايلی بر صحت ادعاها و يا استنباطات فوق باشد ، ولی استاندارد SOAP، بگونه ای است که موارد فوق را در بطن خود لحاظ نخواهد کرد . SOAP ، فرمت پيامهای XML را مشخص می کند. در صورتيکه دارای بخشی شامل کدهای XML باشيم که بين عناصر SOAP قرار گرفته باشند، می توان اين ادعا را داشت که دارای يک پيام SOAP هستيم . SOAP ، دارای مشخصه های ديگری است که نحوه ارائه داده بصورت XML را تشريح و نحوه استفاده از SOAP برای RPC را مشخص خواهد کرد. بخش های اختياری فوق، امکان ايجاد نرم افزارهای مبتنی بر RPC را فراهم خواهد کرد . در اين نوع نرم افزارها يک پيام SOAP ، شامل فراخوانی يک تابع بهمراه پارامترهائی است که از طريق سرويس گيرنده ارسال خواهند شد. درادامه ، سرويس دهنده پيامی را بهمراه نتيجه اجرای تابع برای سرويس گيرنده ارسال خواهد کرد. اغلب نسخه های پياده سازی شده SOAP ، از برنامه های مبتنی بر RPC همچنان حمايت می کنند . شناخت مناسب برنامه نويسان از تکنولوژيهای COM و يا CORBA دليلی بر حمايت فوق است . SOAP ، همچنين از برنامه های Document Style حمايت می کند. در اين نوع برنامه ها ، پيام SOAP صرفا" بصورت يک Wrapper همراه سند XML است . برنامه های SOAP با سبک Document-Style کاملا" انعطاف پذير بوده و اغلب سرويس های جديد وب XML ،از انعطاف پذيری فوق برای ايجاد سرويس هائی که پياده سازی آنان توسط RPC مشکل است، استفاده می نمايند. آخرين بخش اختياری در SOAP ، نحوه برخورد با پيام های SOAP را که از پيام های Http استفاده می کنند، تشريح می کند. Http ،توسط اغلب سيستم های عامل حمايت شده و پرداختن به آن می تواند از زاويه فوق حائز اهميت باشد. بنابراين تمامی نسخه های پياده سازی شده SOAP ، نيز از آن حمايت می نمايند. تقريبا" اغلب سرويس های وب XML ،از Http استفاده می نمايند يکی از مسائل مهم در رابطه با شروع استفاده از SOAP ، وجود اختلاف بين ويژگی ها و خصايص هر يک از نسخه های پياده سازی شده SOAP است . اغلب افراديکه از SOAP استفاده می نمايند ، پيام های SOAP را مستقيما" نمی نويسند .در اين راستا از نرم افزارهای مربوطه (SOAP Toolkit) برای ايجاد و تفسير پيام های SOAP استفاده می کنند. اين نوع نرم افزارها ،عموما" باعث ترجمه توابع صدا زده شده از يک نوع زبان برنامه نويسی به يک پيام SOAP می گردنند. مثلا" برنامه Microsoft SOAP Toolkit 2.0 ، باعث ترجمه توابع فراخوانده شده COM به SOAP شده و يا Apache Toolkit توابع فراخوانده شده و نوشته شده به زبان جاوا را به SOAP ترجمه خواهند کرد. نوع توابعی که فراخوانده شده و نوع داده ها ی مربوط به پارامترها ، در هر يک از نسخه های پياده سازی شده SOAP ، با يکديگر متفاوت بوده و ممکن است تابعی که با يک Toolkit کار می کند با ديگری کار نکند. مسئله فوق مربوط به محدوديت SOAP نبوده و به پياده سازی يک نسخه خاص از SOAP برمی گردد. SOAP ، تاکنون بر روی سخت افزارها و محيط های نرم افزاری متفاوتی پياده سازی شده است . اين بدان معنی است که SOAP ، قادر به برقراری ارتباط سيستم های مجزای درون سازمانی و برون سازمانی است . در سال های اخير، تلاش های گسترده ای برای ايجاد يک پروتکل ارتباطی بمنظور ارتباط سيستم ها با يکديگرانجام شده است ولی تاکنون هيچکدام از آنها به مرزهای موفقيت SOAP دست پيدا نکرده اند، سادگی و کوچک بودن SOAP نسبت به ساير پروتکل های مدعی در اين زمينه ، از دلايل موفقيت آن می باشد . ويژگی های منحصربفرد Http و سادگی SOAP باعث گرديده که استفاده از آنان برای پياده سازی سرويس های وب XML ايده آل باشد .

WSDL

WSDL ، مکانيزمی برای تشريح سرويس های وب است . يک فايل WSDL خود يک سند XML بوده که مسئوليت تشريح مجموعه ای از پيام های SOAP و نحوه تبادل پيام ها را تشريح خواهد کرد. بنابراين محتويات اينچنين فايل ها بسادگی قابل خواندن و ويرايش توسط اغلب برنامه های نرم افزاری خواهد بود. بمنظور بررسی نقش اين نوع فايل ها ، تصور نمائيد می خواهيد يک متد SOAP را که توسط يک سازمان تجاری ديگر ارائه شده است را ، استفاده نمائيد . در چنين حالتی می توان ، از سازمان مربوطه درخواست تعدادی پيام نمونه SOAP را کرده و برنامه خود را بگونه ای که قادر به توليد و مصرف پيامهای مشابه با نمونه های ارائه شده باشد، طراحی و پياده سازی کرد . در عمل، روش فوق با اشکالات متعددی مواجه خواهد شد . مثلا" ممکن است يک شماره شناسائی (ID) با مقدار 2837 را مشاهده و آن را بصورت يک عدد صحيح تفسير در صورتيکه مقدار فوق يک رشته باشد . WSDL ، مشخص خواهد کرد که يک درخواست پيام می بايست شامل چه مواردی بوده و پيام ارائه شده بعنوان پاسخ ، می بايست شامل چه مواردی و به چه صورت باشد. فايل های ،WSDL علاوه بر مسئوليت تشريح پيامها ،قادر به تشريح محل استقرار سرويس بهمراه پروتکل ارتباطی برای ايجاد ارتباط با آن، نيز می باشند . اين بدان معنی است که يک فايل WSDL ، تمامی موارد ضروری برای نوشتن يک برنامه جهت درگير شدن با يک سرويس وب XML را دارا می باشد . در اين راستا ، می توان از ابزارهای متفاوتی جهت خواندن يک فايل WSDL و توليد کدهای مورد نياز برای ايجاد ارتباط با يک سرويس وب XML استفاده کرد. برخی از ابزارهای فوق ، بهمراه ويژوال استوديو دات نت ارائه شده است . اغلب بسته های نرم افزاری SOAP ، شامل ابزارهائی برای توليد فايل های WSDL بوده ولی در رابطه با نوشتن فايل های WSDL (بصورت مستقيم) ابزارهای محدودتری وجود دارد.

UDDI

UDDI ، بعنوان Yellow page ( کتاب زرد ) برای سرويس های وب تلقی می گردد. در اين نوع کتاب ها ، بسادگی می توان عمليات جستجو برای يافتن يک شرکت جهت انجام يک سرويس خاص را انجام داد. در صورتيکه عمل جستجو با موفقيت همراه باشد ، می توان بمنظور اخذ اطلاعات تکميلی با شرکت مربوطه ارتباط برقرار کرد . در صورتيکه يک سرويس در UDDI ريجستر نگردد،حوزه دستيابی ساير متقاضيان به سرويس فوق ، بسيار محدود خواهد شد. دايرکتوری UDDI ، يک فايل XML بوده که يک فعاليت تجاری و سرويس های ارائه شده توسط آن را تشريح خواهد کرد. هر موجوديت در دايرکتوری فوق از سه بخش اساسی تشکيل شده است :
• White Pages ، شامل شرکت های ارائه دهنده خدمات بهمراه مولفه های اطلاعاتی نظير نام ،آدرس و شماره تماس و ... است .
• Yellow Pages ، شامل گروه های متفاوت صنعتی بر اساس استانداردهای رايج جهانی است .
• Green Pages ، شامل جزئيات لازم برای اينترفيس سرويس بوده ،تا زمينه استفاده از سرويس فوق برای ساير برنامه نويسان فراهم گردد .
بمنظور تعريف سرويس ها در UDDI از روش های Type Model و يا tModel استفاده می گردد . در روش tModel از يک فايل WSDL بمنظور تشريح اينترفيس SOAP استفاده می گردد. دايرکتوری UDDI شامل امکانات متعددی برای جستجوی سرويس های مورد نياز برای ايجاد يک برنامه است . مثلا می توان عمليات جستجو را بر اساس محل فيزيکی سازمان ارائه دهنده سرويس ، نوع ( گروه ) سازمان ارائه دهنده سرويس و ... انجام داد. پس از جستجو ، دايرکتوری UDDI اطلاعات مورد نظر شامل نحوه تماس ، ارتباطات ، اطلاعات فنی و ساير موارديکه امکان استفاده از سرويس را فراهم می نمايند ، می باشد . UDDI امکان يافتن يک فعاليت تجاری خاص بمنظور اخذ سرويس های وب ، نيز را فراهم می نمايد . در صورتيکه نسبت به سازمان ارائه دهنده سرويس شناخت لازم وجود داشته باشد ، ولی نسبت به نوع سرويس های ارائه شده توسط آن سازمان شناختی وجود نداشته باشد ، می توان با استفاده از WS-Inspection در بين مجموعه ای از سرويس های وب موجود بر روی يک سرويس دهنده خاص ، حرکت تا از اين طريق بتوان سرويس مورد نظر برای تامين خواسته مورد نظر را پيدا کرد .

خلاصه

در اين مقاله به بررسی نحوه گفتگو با سرويس های وب (SOAP) ،نحوه تشريح سرويس های وب (WSDL) و نحوه يافتن سرويس های وب (UDDI) پرداخته شد . با اينکه برای استفاده از سرويس ها ی وب فعاليت های گسترده ای انجام شده است ولی هنور مسائلی نظير : امنيت ،مديريت عملياتی ،پيامهای مطمئن و موارد ديگری وجود دارد که می بايست برای آنها نيز راهکارهای مناسب ارائه گردد. معماری Global XML web Services ، با هدف افزودن قابليت های جديد و پيشرفته به سرويس های XML ، مطرح گرديده است که هم بصورت ماژولار بوده و هم قابل توسعه خواهند بود . ماژول های WS-Security و WS-License بعنوان بخشی از مشخصه های معماری فوق مطرح می گردنند. مديريت عملياتی سرويس های وب ، مستلزم داشتن يک سيستم Routing Message از طريق سرويس دهندگان متعدد و پيکربندی مناسب آنها بصورت پويا برای پردازش است . WS-Routing و WS-Referral ، بعنوان ماژول هائی در معماری فوق ، مسئوليت های اشاره شده را دنبال خواهند کرد .